home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 1 Issue 2 / PDCD-1 - Issue 02.iso / _utilities / utilities / 001 / quotes / !SQ%a0Source / Other / MoreInfo < prev    next >
Text File  |  1994-11-09  |  19KB  |  371 lines

  1. Other.MoreInfo - more stuff about Smart Quotes.
  2. See !Help ₧le for copyright stuff etc.
  3.  
  4. What these ₧les actually do
  5. ***************************
  6.  
  7.    NB: This assumes MoreInfo is in the !Quotes directory, *not* the
  8. !SQáSource directory. All this stuff about SlimDown only makes sense if you
  9. have one big humungous application, not two separate biggish ones.
  10.  
  11.    Choices holds the location of the choices directory (by default
  12. öSQáChoicesò in <SmartQuotes$Dir>). This directory holds Chars, Diphthongs,
  13. Setup and Choices, which hold the various Smart Quotes choices, preferences
  14. etc.
  15.  
  16.    SlimDown will create an application called !SQáSource in the directory
  17. !Quotes is in, and put all the source code stuff in it. *YOU SHOULD THEN MAKE
  18. A BACKUP OF THIS DIRECTORY!*. It will also replace the massive !Help ₧le by a
  19. rather smaller one, although the !Help ₧le will still be there ù it will
  20. have been renamed to ReadMe. Running !SQáSource will copy the stuff back,
  21. provided Smart Quotes has been seen.
  22.    As the whole process is quite complicated, you should actually make a
  23. backup of the whole Smart Quotes application before you start mucking about
  24. with this sort of stuff.
  25.  
  26.    The Vector routine is used to read the diphthongs, and is read in from
  27. disc rather than being assembled every time (wasteful of memory).
  28.  
  29.    The MoreHelp module supplies interactive help for Smart Quotes; the
  30. !IntHelp ₧le contains the messages for it to use in the appropriate format.
  31.  
  32.    CopyFat, CopySlim, FattenUp, Slim!Sprit, Small!Help and SourceHelp are all
  33. used during the slimming down (putting loads of stuff in !SQáSource) or
  34. fattening up processes (putting it back into !Quotes). You donæt need to know
  35. about it ù if you do, hack the ₧le.
  36.  
  37.    Other.AppSource is the source code for the application - i.e. itæs
  38. readable. ;)
  39.  
  40.    Other.ModSource is the source code for the module - it wasnæt included in
  41. the ₧rst release, but seeing as I (very partially) ripped off Michael
  42. Rozdobaæs source code because he included it with Desktop+, I felt it would
  43. be unfair not to include mine. Also, I spent too much time trying to work out
  44. why my code wasnæt working (eventually, I had a look at other ₧lters using
  45. Zap and realised I didnæt have to use Wimp_ProcessKey after all...) not to
  46. appreciate people supplying readable, commented code. So here it is.
  47.  
  48.    Other.ShortHelp is a set of library routines for compacting help strings
  49. using OS_PrettyPrintæs internal dictionary. If you hardwire the codes into
  50. the source code it looks ugly, confusing, and it's almost impossible to read
  51. (look at Desktop+æs source code ;) ). See Other.ShortHDocs for more
  52. information.
  53.  
  54.    Other.VecSource is the source code for a small routine that traps the
  55. WrchV vector, spools all output into a buffer, and then gives the vector
  56. back. Itæs used to get the list of diphthongs from the module without having
  57. to use a message or a SWI (both of which need an of₧cial number from Acorn
  58. and quite a bit of work). The routine uses *ShowDiphthongs TINY (an
  59. undocumented - well almost - version of ShowDiphthongs), to produce a list
  60. without any formatting (try it yourself).
  61.  
  62. The ₧les you actually need
  63. ***************************
  64.  
  65.    OK, if this is supposed to be a nice compact utility, how come it takes up
  66. nearly 250K of disc space? The answer is that, out of those 250K, about 125K
  67. is source code and various documentation ù which you donæt need to use Smart
  68. Quotes. If you are running Smart Quotes from a network or a ƒoppy, you can
  69. make considerable savings by removing the unused ₧les.
  70.  
  71.    If your copy of Smart Quotes only takes 125K or so, then you already have
  72. a slim version, in which case you should ignore the rest of the section.
  73.  
  74.    There is a ₧le in the Smart Quotes directory called SlimDown, which will
  75. move all the unnecessary stuff out of the Smart Quotes directory into a
  76. separate !SQáSource application. As it renames the ₧les rather than copying
  77. them, it shouldnæt need too much free disc space (maybe a few K, but no
  78. more). You will now have a slimmed-down (125K or so) version of !Quotes that
  79. will run perfectly happily. *BUT DONæT LOSE !SQáSOURCE !*
  80.    Running !SQ Source will copy all the stuff back.
  81.    ** NB ** : I make no guarantee that this will actually work on your
  82. machine. It should, but you never know what sorts of strange things could
  83. happen. When in doubt, copy the stuff manually.
  84.    You may have been supplied with a ösmallò version of Smart Quotes, in
  85. which case you should be able to get a copy of !SQáSource. Running it should
  86. copy the ₧les back.
  87.  
  88.    See the FileList files for full lists of the files you should have.
  89.  
  90. Other miscellanea
  91. *****************
  92.  
  93.    You canæt have two copies of Smart Quotes loaded at once, as that would
  94. just be too confusing ù besides, when you quit one, the other one would very
  95. soon complain about not having a module to work with. So if you load a second
  96. copy, the older one quits.
  97.  
  98.    Some of you out there might be annoyed that Smart Quotes doesnæt bother to
  99. check the size of the current mode when it opens its windows ù so they may
  100. very well be off-centre. But all is not lost: Smart Quotes will save the
  101. position of the windows when you save the choices, and re-use them at the
  102. next session.
  103.  
  104. * commands
  105. **********
  106.  
  107. ShowDiphthongs : produces a list of diphthongs.
  108.  
  109. AddDipthong <₧rst> <second> <subst> : add a diphthong to the list.
  110.  
  111. RemoveDiphthong <pos> : remove diphthong number <pos> from the list.
  112.  
  113. ClearDiphthongs : wipe the list of diphthongs.
  114.  
  115. There is also help available on the Smart Quotes variables (see below), and
  116. on diphthongs.
  117.  
  118. Variables
  119. *********
  120.  
  121.    There are several special variables used by Smart Quotes ù öspecialò
  122. because they canæt be deleted by the user and directly reƒect the workings
  123. of the program. SmartQuotes$Options and SmartQuotes$Subst both take the form
  124. of a binary number (i.e. a number of the form 2_101, where the ö2_ò means
  125. öthis number is a binary numberò). Viewing the variable shows the current
  126. state of some of the programæs settings, changing the value of the variable
  127. will change them.
  128.  
  129.    SmartQuotes$Options controls Smart Quotesæ settings, exactly like the
  130. Settings dialogue boxes do. It takes the form 2_edcba, where a stands for bit
  131. 0, b for bit 1, c for bit 2, d for bit 3, e for bit 4. The bits have the
  132. following meaning:
  133.  
  134.    Bit 0   Double quotes substitution :      1: smart quotes
  135.                                              0: neutral quotes
  136.    Bit 1   Single quotes substitution :      1: smart quotes
  137.                                              0: neutral quotes
  138.    Bit 2   Form of substituted single quotes 1: All closed
  139.                                              0: Open and closed
  140.    Bit 3   Diphthong substitution :          1: substitute
  141.                                              0: donæt substitute
  142.    Bit 4   Typing mistake checking :         1: check and replace
  143.                                              0: leave as they are
  144.                                              
  145.    Typing *Set SmartQuotes$Options 2_10011 at the CLI would turn double quote
  146. and single quote substitution on, substitute both open and closed single
  147. quotes, turn off diphthong substitution but turn on typing mistake checking.
  148. Typing *Set SmartQuotes$Options 19 would have the same effect. 
  149.  
  150.    SmartQuotes$Subst controls the future form of double quotes and single
  151. quotes (like Smart Quotesæ icon when öShow next quote in iconò is selected).
  152. It takes the form 2_ba, where a stands for bit 0, b for bit 1. The bits have
  153. the following meaning:
  154.  
  155.    Bit 0   Next double quote will be...    1: closed
  156.                                            0: open
  157.    Bit 1   Next single quote will be...    1: closed
  158.                                            0: open
  159.                                            
  160.    Typing *Set SmartQuotes$Subst 2_10 would make the next double quote open
  161. and the next single quote closed (if that doesnæt conƒict with current
  162. settings). Note that the settings are meaningless if quotes arenæt
  163. substituted by smart quotes.
  164.  
  165.    The other four variables are more straightforward, and allow you to view
  166. and modify the characters SmartQuotes substitutes quotes by. Their full names
  167. are:
  168.    SmartQuotes$OpenDouble
  169.    SmartQuotes$ClosedDouble
  170.    SmartQuotes$OpenSingle
  171.    SmartQuotes$ClosedSingle
  172.  
  173.    So typing *Set SmartQuotes$ClosedDouble ╗ would make Smart Quotes replace
  174. what it thinks should be a closed quote by ╗. Giving Smart Quotes silly
  175. values (i.e. nonprintable) or no value at all will reset the value to its
  176. default value.
  177.  
  178.    Smart Quotes also uses other, perfectly normal, variables, usually de₧ned
  179. in the !Run ₧le.
  180.    Å SmartQuotes$Dir points to the main Smart Quotes directory, with
  181.      !RunImage, Templates etc.
  182.    Å SmartQuotes$ChoicesDir points to the Choices directory, where Chars,
  183.      Choices and Diphthongs will be saved. This is usually öSQáChoicesò in
  184.      SmartQuotes$Dir, except when Smart Quotes is started from a read-only
  185.      ₧ling system (network, read-only ArcFS, etc.), in which case you should
  186.      change this to point elsewhere.
  187.    Å SmartQuotes$RunChars points to a ₧le, usually Resources:$.Apps.!Chars,
  188.      which will be run when you Shift-Adjust-click on the Settings windowæs
  189.      close icon.
  190.    Å SmartQuotes$MainFont contains the name of the default font for the
  191.      diphthongs window.
  192.    Å SmartQuotes$HeadFont contains the name of the font used for headings in
  193.      the diphthongs window. 
  194.    Å SmartQuotes$FontSize contains the size of the font, in sixteenths of a
  195.      point.
  196.    All of these except SmartQuotes$Dir can be changed with the Other choices
  197. window, and are stored in the <SmartQuotes$ChoicesDir>.Setup file
  198. (ChoicesDir is stored in <SmartQuotes$Dir>.Choices).
  199.  
  200. Version history
  201. ***************
  202.    So far, there have been four releases of Smart Quotes:
  203.       1.00 - very basic, just the textual settings box and an icon
  204.       1.13 - much more developed, everything except Diphthongs and tweaks
  205.       1.14 - as 1.13 but with hi-res icons
  206.       1.20 - the latest version, with diphthongs and various tweaks
  207.       1.20b - as 1.20, with a few bugs corrected
  208.    If version numbers had anything to do with the number of changes, then
  209. version 1.20 would now be version 1.23 ù it's been version 1.20 for a month
  210. now ;). But I like 1.20 ù Beeb owners will know why ;).
  211.       
  212.    A list of the changes between versions follows.
  213.  
  214.    Version 1.20 - 1.20b
  215.         See ReadMe120b file.
  216.  
  217.    Version 1.14 - 1.20
  218.       Å Diphthong support added (module is now almost twice as big), view,
  219.         edit, add, delete and save from the front end, using outline fonts.
  220.       Å Lots of new mouse shortcuts added (iconbar Adjust-click, Shift, Ctrl
  221.         and Alt-clicks, Adjust-click on settings box, clicks on close icon).
  222.       Å Other choices window added (actually a separate program) to change
  223.         font, choices directory and character viewer.
  224.       Å Typing mistake correction added.
  225.       Å Insert window removed (not particularly useful with all those
  226.         diphthongs). Adjust-clicking on any windowæs close icon runs !Chars
  227.         (by default - see öOther choicesò in main ReadMe for more details).
  228.       Å Interactive Help support added with the More Help module.
  229.       Å Refresh button in Chars window re-reads the characters. Characters
  230.         window now uses outline fonts.
  231.       Å Sprites are now available in high- and low-res versions. The
  232.         high-res versions are in a four-colour mode (with palette), to reduce
  233.         memory requirements (i.e. wouldnæt ₧t otherwise).
  234.       Å When you change the settings, only changes the önext quoteò bit if
  235.         the type of quote has changed - if the next double quote is closed,
  236.         and you change single quote substitution, the next double quote stays
  237.         closed.
  238.       Å Adjust-click swaps between quote substitution and no substitution
  239.         (useful when you need to temporarily disable substitution). You can
  240.         choose whether Smart Quotes remembers the quotesæ state (i.e.
  241.         currently open or closed) when you swap ù see the !Help ₧le for why
  242.         this is useful.
  243.       Å SQ Unused changed to SQ Source: from this version, you donæt have to
  244.         distribute the source code with the program, so the name was changed
  245.         to highlight the fact. The !Help ₧le, consequently, is not copied
  246.         over, as otherwise you wouldnæt know what all this was about. Various
  247.         things have been copied between the ₧les so it makes sense.
  248.       Å All those DoubleOn, BothSingle etc. commands have been removed ù
  249.         thereæs no use for them with the variable and it only clutters up the
  250.         module.
  251.       Å Various stuff: module uses OS_PrettyPrint to encode the messages;
  252.         Settings box shows the state (as icons or as text) in the title bar;
  253.         error messages tidied up (not as worrying when a ₧le isnæt there);
  254.         memory used by template routine reduced (twice); desktop save works
  255.         correctly; changing characters takes effect immediately; 2D
  256.         templates removed; asterisks changed to bullets in the help ₧les;
  257.         warning when you load a new version removed (memory, memory...);
  258.         öChars...ò changed to öCharacters...ò
  259.  
  260.    Version 1.13 - 1.14
  261.       Å High-res sprites, slightly modi₧ed template ₧le by Kemal Sangrar.
  262.         First version to be tested on a RISC PC.
  263.  
  264.    Version 1.00 - 1.13
  265.       Å Two code variables added: the front-end stays in sync with the
  266.         module all the time, and you can set the settings from an Obey ₧le
  267.         or a Desktop ₧le (e.g. in your !Boot).
  268.       Å Icon can now reƒect the future state of the substituted quotes
  269.         (i.e. open, closed or neutral).
  270.       Å Graphical settings dialogue box added - easier to use and smaller.
  271.       Å Can change the characters used in substitutions from the front-end
  272.         and via code-variables (e.g. in your !Boot).
  273.       Å Choices dialogue box added to switch between the two settings boxes
  274.         and other things. You can save all choices, or revert to default.
  275.       Å Added !Chars-like window, so you can insert quotes as a one-off
  276.         (saves the hassle of changing mode) or into writable icons.
  277.       Å Now uses the Desktop Save protocol.
  278.       Å Possibility of not killing module when the front-end quits.
  279.       Å Canæt have two copies of the front-end at once.
  280.       Å Clicking SELECT on the icon bar icon brings up the settings box,
  281.         clicking ADJUST brings up the insert window. Clicking again closes
  282.         them again.
  283.       Å Added a variable (SmartQuotes$ChoicesDir) that points to the Choices
  284.         directory, so you can set this to point elsewhere if you are running
  285.         SmartQuotes from a read-only ₧ling system (i.e. NetFS or ArcFS).
  286.       Å Smart Quotes saves the position of the four windows in the Choices.
  287.       Å Added a bunch of very complicated Obey ₧les to slim down the Quotes
  288.         directory (100K is too much for a 32K application ;) ).
  289.       Å Adjust-clicking on the Menu works - the Menu stays around.
  290.       Å Decent error handling
  291.  
  292. Thanks, acknowledgements, comments
  293. **********************************
  294.  
  295.    I would like to thank Acorn for this nice machine, and especially the bit
  296. in RISC OS 3.1 (the Filter Manager) that allows you to intercept other tasksæ
  297. events and muck about with them as you please. It is exceedingly useful - I
  298. have currently seven programs that intercept ₧lters on my machine (it used to
  299. be four, but I've been adding them since)...
  300.  
  301.    I got the idea for this utility after reading a small news item in
  302. MacWorld about a similar program for the Mac, that sat in the background and
  303. substituted quotes for you. It also did em dashes, and Smart Quotes didnæt
  304. use to do those, but now it does, and much more...
  305.  
  306.    I am grateful to Michael Rozdoba, author of Desktop+, for making his
  307. source code freely-available so I could see how he coded his code variables -
  308. although I must point out that the vast majority of the code is mine (I
  309. pinched that sentence from him as well ;) ). I donæt think anyone out there
  310. consciously rips off other peopleæs code (as in copies large chunks of it
  311. verbatim and calls it his own); however, Iæm sure every programmer out there
  312. has at one stage or another taken a peek at someone elseæs code. And as Iæm
  313. not doing this for money or anything, Iæve included the complete source code
  314. to the application, module and even vector claim routine ;).
  315.  
  316.    Also, thanks to the people who e-mailed me to tell me how wonderful
  317. previous versions were (or not, as the case may be), and to give me ideas
  318. for this version. In particular, I can thank the following
  319.    Kemal Sangrar (gtmw03@arts.gla.ac.uk) - sprites and template
  320.    Peter Killworth (atmpk@vax.oxford.ac.uk) - bug reports
  321.    Simon Jackson (S.D.R.Jackson@hertfordshire.ac.uk) - wish list
  322.    Andrew at HENSA (pdarch@cent1.lancs.ac.uk)
  323.    Simon Middleton at Uniqueway (simon@uniqway.demo.co.uk) - CD ;)
  324.    Other people have mailed me since I last wrote this, and I donæt have their
  325. names here - sorry!
  326.  
  327.    The disclaimer was öliftedò from Ting Kueiæs DeskPatch help ₧le - this
  328. doesnæt mean anything, I was just looking for a disclaimer and DeskPatch was
  329. the ₧rst thing I looked at that had one I liked. The freeware bit I also
  330. stole from someone, but I canæt remember who - sorry!
  331.  
  332.    Other people I should thank for writing very useful bits of software, used
  333. to write this or just making my desktop look prettier:
  334.       Dick Alstein, for his wonderful TemplEd.
  335.       Dominic Symes for Zap (love the colour-coding, shame about the fonts).
  336.       Cy Booker for his BASIC cruncher - worth every penny of the registration fee.
  337.       Michael Rozdoba, obviously, for Desktop+ - so good it was on two
  338.          magazine discs...
  339.       Mark Greenwood, for Black Hole.
  340.       Ian Jeffray for Memory Pie (even if I hate the gratuitous pic ;) ).
  341.       Brian Scattergood for his Infocom interpreter.
  342.       Clive Jones for QuickDirs (very nice ₧lter ;) ).
  343.       Simon Burrows for FontsPlus (font directory thingy).
  344.       Rheingold for Vigil (intercepts taskæs messages - very useful)
  345.       Computer Concepts for Impression Publisher.
  346.    Sorry for anyone Iæve forgotten.
  347.  
  348. Wish-list
  349. *********
  350.  
  351.    Things that might be nice would be:
  352.     Å Proper apostrophe substitution. This will almost definately be in the
  353.       next version of Smart Quotes (see ReadMe120b for more details).
  354.     Å Disable substitution when youære in Zap (or another text editor that
  355.       doesnæt like top-bit-set characters). That would mean, presumably,
  356.       having a list of task handles or names that Smart Quotes doesnæt like
  357.       ù lots of work, if you ask me. Maybe next version...
  358.     Å Provide diphthongs of more than two characters. Apart from the fact
  359.       that diphthongs *are* only two characters (pedant mode off), it would
  360.       be too complicated and not really worth it.
  361.     Å Add quotes etc. to a ₧le dragged to the icon, or remove them. Slight
  362.       snag: apart from not being obviously in line with what Smart Quotes
  363.       already does, it would be enormously memory-hungry. Might put it in
  364.       another program ù when Iæve ₧nished all the other ₧lters I want to do
  365.       ;).
  366.  
  367.    Note that since last version (1.13 or 1.14), more than half of the
  368. previous wishlist has been implemented. :) Changing the settings with hotkeys
  369. has been removed: you will probably be using this program in Impression, and
  370. Impression uses most of the possible shortcuts already.
  371.